package com.retail.bbq.cola.vo.response.stampCollection;

import lombok.Data;
import lombok.NoArgsConstructor;
import org.omg.PortableInterceptor.INACTIVE;

import java.util.Date;
import java.util.List;

@NoArgsConstructor
@Data
public class ColaOrderListResponse {

    private String code;
    private String message;
    private Boolean success;
    private Boolean system;
    private DataBean data;

    @NoArgsConstructor
    @Data
    public static class DataBean {
        private Integer size;
        private Integer number;
        private Integer totalPages;
        private Integer totalElements;
        private List<ContentBean> content;

        @NoArgsConstructor
        @Data
        public static class ContentBean {
            private String id;
            private String customerId;
            private Date orderCreateTime;
            private Date orderUpdateTime;
            private String orderId;
            private Integer status;
            private String channel;
            private OrderDetail orderDetail;
            private String campaignCode;
            private Date createTime;
            private Date updateTime;
            private String pointIssuanceStatus;
            private Integer point;
            //暂时用不上
            //private List<StatusChangeRecord> statusChangeRecord;
            //private List<PointsDetails> pointsDetails;

            @NoArgsConstructor
            @Data
            public static class OrderDetail {
                private StoreInfo storeInfo;
                private PriceInfo priceInfo;
                private List<ProductInfos> productInfos;
                private List<CouponInfo> couponInfo;

                @NoArgsConstructor
                @Data
                public static class StoreInfo {
                    private String storeCode;
                    private String storeName;
                    private String storeCampany;
                }

                @NoArgsConstructor
                @Data
                public static class PriceInfo {
                    private int productPrice;
                    private int orderPrice;
                    private int discountedPrice;
                }

                @NoArgsConstructor
                @Data
                public static class ProductInfos {
                    private String productId;
                    private String skuId;
                    private int skuCnt;
                    private int salePrice;
                    private String title;
                    private Boolean discounted;
                    private int merchantDiscountedPrice;
                    private int realPrice;
                }

                @NoArgsConstructor
                @Data
                public static class CouponInfo {
                    private String userCouponId;
                    private String userCouponName;
                }
            }

            @NoArgsConstructor
            @Data
            public static class StatusChangeRecord {
                private String status;
                private String changeTime;
                private String remark;
            }

            @NoArgsConstructor
            @Data
            public static class PointsDetails {
                private String title;
                private int points;
                private String failReason;
                private boolean success;
                private ProcessResult processResult;

                @NoArgsConstructor
                @Data
                public static class ProcessResult {

                    private String code;
                    private String message;
                    private boolean system;
                    private String data;
                }
            }
        }
    }
}
